JAX-RS API এর মাধ্যমে RESTful Service তৈরি

Web Development - অ্যাপাচি সিএক্সএফ (Apache CXF) - RESTful Web Services তৈরি করা (Creating RESTful Web Services) |

JAX-RS (Java API for RESTful Web Services) হল Java-এর একটি এপিআই, যা RESTful ওয়েব সার্ভিস তৈরি করার জন্য ব্যবহার করা হয়। এটি সহজে ওয়েব সার্ভিস তৈরি করতে সহায়তা করে এবং HTTP প্রোটোকলের মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে বার্তা আদান-প্রদান করতে সক্ষম। এখানে JAX-RS API ব্যবহার করে RESTful ওয়েব সার্ভিস তৈরি করার পদ্ধতি ব্যাখ্যা করা হবে।


ধাপ 1: Maven প্রজেক্ট তৈরি করা

প্রথমে Maven ব্যবহার করে একটি নতুন প্রজেক্ট তৈরি করুন এবং JAX-RS সহ প্রয়োজনীয় ডিপেনডেন্সি যুক্ত করুন।

1.1 pom.xml ফাইলে ডিপেনডেন্সি যোগ করা

JAX-RS API ব্যবহার করতে, আপনি pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করতে পারেন:

<dependencies>
    <!-- JAX-RS Dependency (for RESTful Web Services) -->
    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>2.35</version> <!-- Latest Version -->
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.35</version> <!-- Latest Version -->
    </dependency>

    <!-- Logging Dependency -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.13.3</version>
    </dependency>
</dependencies>

এই ডিপেনডেন্সিগুলি JAX-RS API এবং JSON মিডিয়া টাইপের জন্য প্রয়োজনীয় লাইব্রেরি প্রদান করবে।


ধাপ 2: RESTful Web Service ক্লাস তৈরি করা

2.1 RESTful Service ক্লাস তৈরি করুন

JAX-RS API ব্যবহার করে একটি RESTful Web Service তৈরি করতে, আপনাকে একটি ক্লাস তৈরি করতে হবে, যা @Path অ্যানোটেশন ব্যবহার করে URL পাথ নির্ধারণ করবে এবং @GET, @POST, @PUT, @DELETE অ্যানোটেশন ব্যবহার করে HTTP মেথডের সাথে সম্পর্কিত মেথডগুলো ডিফাইন করবে।

এখানে একটি সাধারণ "Hello World" RESTful Web Service ক্লাসের উদাহরণ দেখানো হচ্ছে:

package com.example.rest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class HelloWorldService {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayHello() {
        return "Hello, World!";
    }
}
  • @Path("/hello"): এই অ্যানোটেশনটি সার্ভিসটির URL পাথ নির্ধারণ করে। এখানে /hello পাথ ব্যবহার করা হয়েছে।
  • @GET: এটি HTTP GET মেথডকে নির্দেশ করে। এই মেথডটি ওয়েব সার্ভিসের GET রিকোয়েস্ট হ্যান্ডেল করবে।
  • @Produces(MediaType.TEXT_PLAIN): এই অ্যানোটেশনটি নির্দেশ করে যে, সার্ভিসের আউটপুট কনটেন্ট টাইপ text/plain হবে, অর্থাৎ সাধারণ টেক্সট।

2.2 URL পাথ এবং HTTP মেথড

  • GET: তথ্য পেতে GET মেথড ব্যবহার হয়। উদাহরণস্বরূপ, উপরের sayHello() মেথডটি GET রিকোয়েস্ট হ্যান্ডেল করবে।
  • POST: নতুন ডেটা তৈরি করতে POST মেথড ব্যবহার হয়।
  • PUT: বিদ্যমান ডেটা আপডেট করতে PUT মেথড ব্যবহার হয়।
  • DELETE: বিদ্যমান ডেটা মুছে ফেলতে DELETE মেথড ব্যবহার হয়।

ধাপ 3: Application ক্লাস তৈরি করা

JAX-RS সার্ভিসটি চালু করার জন্য একটি Application ক্লাস তৈরি করতে হয়, যা সার্ভিসটির সমস্ত রিসোর্স ক্লাস কনফিগার করবে।

এখানে একটি Application ক্লাসের উদাহরণ দেওয়া হচ্ছে:

package com.example.rest;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/api")
public class RestApplication extends Application {
    // No additional code is required here for basic functionality
}
  • @ApplicationPath("/api"): এই অ্যানোটেশনটি JAX-RS অ্যাপ্লিকেশনের মূল পাথ নির্ধারণ করে। এখানে /api পাথটি ব্যবহার করা হয়েছে, অর্থাৎ সমস্ত RESTful সার্ভিস /api পাথের অধীনে থাকবে।

ধাপ 4: ওয়েব সার্ভারের কনফিগারেশন

JAX-RS API চালানোর জন্য একটি সার্ভার যেমন GlassFish, Tomcat অথবা Jetty ব্যবহার করতে হবে। GlassFish একটি জনপ্রিয় জাভা EE সার্ভার যা JAX-RS সমর্থন করে।

4.1 GlassFish বা Tomcat সার্ভারে ডিপ্লয় করা

যদি আপনি GlassFish সার্ভার ব্যবহার করেন, তবে আপনাকে প্রথমে GlassFish সার্ভার ইনস্টল করতে হবে এবং পরে প্রজেক্টটি ডিপ্লয় করতে হবে। GlassFish বা Tomcat এ ডিপ্লয় করার জন্য Maven ব্যবহার করে ওয়েব অ্যাপ্লিকেশন প্যাকেজ করতে পারেন:

mvn clean package

এরপর, আপনি target ফোল্ডারের মধ্যে তৈরি হওয়া .war ফাইলটি GlassFish বা Tomcat সার্ভারের webapps ফোল্ডারে ডিপ্লয় করতে পারবেন।


ধাপ 5: ক্লায়েন্ট তৈরি করা

RESTful সার্ভিস তৈরি হওয়ার পর, আপনি একটি ক্লায়েন্ট তৈরি করতে পারেন যা এই সার্ভিসটি কল করবে।

5.1 RESTful সার্ভিস কল করতে JAX-RS ক্লায়েন্ট ব্যবহার করা

এখানে একটি ক্লায়েন্ট উদাহরণ দেওয়া হচ্ছে যা HelloWorldService থেকে ডেটা ফেচ করবে:

package com.example.rest;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.Response;

public class RestClient {
    public static void main(String[] args) {
        Client client = ClientBuilder.newClient();
        Response response = client.target("http://localhost:8080/api/hello")
                                  .request()
                                  .get();
        
        String output = response.readEntity(String.class);
        System.out.println("Response from server: " + output);
    }
}

এখানে:

  • Client: এটি JAX-RS ক্লায়েন্ট, যা সার্ভিসে HTTP রিকোয়েস্ট পাঠাতে এবং উত্তর প্রাপ্ত করতে ব্যবহৃত হয়।
  • target(): এটি URL নির্ধারণ করে, যেখানে সার্ভিস অ্যাক্সেস করা হবে।
  • request().get(): এটি HTTP GET রিকোয়েস্ট পাঠানোর পদ্ধতি।

সারাংশ

এই গাইডে, আপনি শিখলেন কিভাবে JAX-RS API ব্যবহার করে একটি RESTful ওয়েব সার্ভিস তৈরি করতে হয়। প্রাথমিকভাবে, Maven প্রজেক্ট তৈরি করে JAX-RS ডিপেনডেন্সি যোগ করা, RESTful সার্ভিস ক্লাস তৈরি করা, এবং GlassFish বা Tomcat সার্ভারে সেটি ডিপ্লয় করা। শেষে, JAX-RS ক্লায়েন্ট ব্যবহার করে সার্ভিসটিকে কল করার পদ্ধতিও আলোচনা করা হয়েছে।

Content added By
Promotion